var express = require('express');
var router = express.Router();
<<<<<<< HEAD
var sql = require('./../sql')
var xlsx = require('node-xlsx'); // 引入 数据导入模块
var uuid = require('node-uuid'); // 引入 以为的uuid
var Pro = require('./../sql/col/pros'); // 引入数据库操作模块
// 产品接口文档
=======
var xlsx = require('node-xlsx'); // 引入 数据导入模块
var uuid = require('node-uuid'); // 引入 唯一的uuid
var Pro = require('./../sql/col/pros'); // 产品的集合
// var sql = require('./../sql'); // 引入数据库操作模块
// var sql = require('./../sql/index'); // 引入数据库操作模块
var sql = require('./../sql/index.js'); // 引入数据库操作模块

>>>>>>> 61d95511f5bb548966870409910cdf315f439697
/**
 * @api {get} api/pro 获取列表的数据
 * @apiDescription 获取列表的数据，可以传递不同的参数以获取数据
 * @apiGroup pro
 * @apiParam { number } limit 每页显示个数（默认值10）
 * @apiParam { number } count 页码（默认值0
 * @apiSuccessExample { json } Success-Response:
 * {
 *  code: '200',
 *  message: '获取产品列表数据',
 *  data: []
 * }
 * @apiSampleRequest /api/pro
 * @apiVersion 1.0.0
 */
router.get('/', function(req, res, next) {
<<<<<<< HEAD
  res.send('列表数据')
})

//添加一个后台用于数据导入的接口文档
router.get('/upload',function(req,res,next){
  // 1. excel的绝对地址
  let fileStr = 'D:/shop.xlsx'
  // 2. 得到数据后将他转为对象
  // res.send(fileStr)
=======
  // 不管是get还是post 获取到的参数都是字符串，需要转换
  let limit = req.query.limit * 1 || 10
  let count = req.query.count * 1 || 0

  sql.paging(Pro, {}, { _id: 0 }, limit, count).then((data) => {
    res.send({
      code: '200',
      message: '获取产品列表数据',
      len: data.length, // 告诉用户请求了多少条数据
      data: data
    });
  })
  
});

// 不需要写接口文档
router.get('/upload', function(req, res, next) {
  // 1.获取excel的绝对地址
  let fileStr = 'D:/shop.xlsx';
  // 2.解析这个文件 - 输出为对象
>>>>>>> 61d95511f5bb548966870409910cdf315f439697
  let fileData = xlsx.parse(fileStr)
  // res.send(fileData)
  // [ {name: '', data: []}, {name: '', data: []}]
  // 3.获取对应的表格中的数据 --- 依据excel表格中的数据的顺序
  let proarr = fileData[0].data
  // res.send(proarr)
  /**
   * [
   *  [表头1， 表头2， 表头3....],
   *  [数据1， 数据2， 数据3....]
   * ]
   */
  // 4.遍历数据，组合数据
  let arr = []
<<<<<<< HEAD
  // res.send(proarr)
  proarr.map((item,index) => {
      if(index > 0 ){
          // 去除数据中的标题一栏
          let obj = {
              proid:'pro_' + uuid.v1(), //产品的唯一值
              type: item[0],
              brand: item[1],
              brandimg: item[2],
              proname: item[3],
              rating: item[4] * 1,
              sales: item[5] * 1,
              stock: item[6] * 1,
              price: item[7] * 1,
              flag: item[8] * 1,
              detailimg: item[9],
              proimg: item[10],
              detail: item[11]
          }
          // 将数据放入到一个数组中
          arr.push(obj)
=======
  proarr.map((item, index) => {
    if (index > 0) { // 去头
      let obj = {
        proid: 'pro_' + uuid.v1(), // 产品的谓一值
        type: item[0],
        brand: item[1],
        brandimg: item[2],
        proname: item[3],
        rating: item[4] * 1,
        sales: item[5] * 1,
        stock: item[6] * 1,
        price: item[7] * 1,
        flag: item[8] * 1,
        proimg: item[9],
        desc: item[10],
        detail: item[11]
>>>>>>> 61d95511f5bb548966870409910cdf315f439697
      }
      arr.push(obj)
    }
  })
  // res.send(arr)
  // 5.插入数据库
<<<<<<< HEAD
  sql.insert(Pro,arr).then( (data) => {
    res.send('插入数据成功' + data)
=======
  sql.insert(Pro, arr).then(() => {
    res.send('插入数据成功')
  })
  // res.send('上传产品');
});

/**
 * @api {get} api/pro/detail 获取产品的详情数据
 * @apiDescription 获取产品的详情数据
 * @apiGroup pro
 * @apiParam { string } proid 产品id
 * @apiSuccessExample { json } Success-Response:
 *  {
 *    code: '200',
 *    message: '获取详情的数据',
 *    data: data[0]
 *  }
 *  {
 *    code: '10404', // 10404 状态码自己编辑，随便设定
 *    message: '没有查询到该产品相关数据'
 *  }
 * @apiSampleRequest /api/pro/detail
 * @apiVersion 1.0.0
 */
router.get('/detail', (req, res, next) => {
  // 1. 获取产品的唯一值参数
  const { proid } = req.query; // es6解构赋值
  // 2.依据 proid 查询数据库
  sql.find(Pro, { proid }, { _id: 0 }).then(data => {
    // 3.判断有没有数据
    data.length > 0 ? res.send({
      code: '200',
      message: '获取详情的数据',
      data: data[0]
    }) : res.send({
      code: '10404', // 10404 状态码自己编辑，随便设定
      message: '没有查询到该产品相关数据'
    })
>>>>>>> 61d95511f5bb548966870409910cdf315f439697
  })
})

module.exports = router;
